package com.wwdx.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.wwdx.utils.ConstantHolder;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author liguoliang
 */
@Entity
@Table(name = "wwdx_book")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WwdxBookModel implements Serializable{

    @Id
    @GeneratedValue
    @JsonIgnore
    private Long id;
    /**
     * 书籍ID
     */
    private Long bookid;
    /**
     * 书籍名称
     */
    private String bookname;
    /**
     * 书籍图片
     */
    private String bookimg;
    /**
     * 书籍作者
     */
    private String bookauthor;
    /**
     * 书籍出版社
     */
    private String bookpublish;
    /**
     * 一句话介绍
     */
    private String bookrecommend;
    /**
     * 书籍现有价格
     */
    private BigDecimal bookprice;
    /**
     * 书籍原价格
     */
    private BigDecimal bookoriginalprice;
    /**
     * 书籍字数描述
     */
    private String bookwrodnumber;
    /**
     * 音频作者Id
     */
    private Long videoauthorid;
    /**
     * 音频时长
     */
    private String videoduration;
    /**
     * 内容
     */
    private String content;
    /**
     * 推荐语
     */
    private String contentsummary;
    /**
     * 活动状态
     */
    private Integer book_activity;
    /**
     * 活动结束时间
     */
    @DateTimeFormat(pattern = ConstantHolder.Constant.LOCAL_DATE_TIME_PATTERN)
    private Date book_activity_end_time;
    /**
     * 书籍点击量
     */
    @JsonIgnore
    private Long click_count;
    /**
     * 统计参考值
     */
    private Long reference_click_count;
    /**
     * 思维导图小图
     */
    private String mapping_small_img;
    /**
     * 思维导图
     */
    private String mapping_img;
    /**
     * 横幅
     */
    private String banner;
    /**
     * 小课详情图片
     */
    private String smallLessonImg;
    /**
     * 是否首页显示 0否1是
     */
    @JsonIgnore
    private Integer ishost;
    /**
     * 撰稿人
     */
    private Long copywriter;
    /**
     * 书籍类型 0 书籍 1 小课
     */
    private Integer type;
    /**
     * 是否可用 0 可用 1 不可用
     */
    private Integer status;
    /**
     * 排序
     */
    @JsonIgnore
    private Integer sort;
    /**
     * 章节数量
     */
    private Long chaptercount;
    /**
     * 创建时间
     */
    @Column(name = "gmt_created",updatable = false)
    private Date gmtCreated;
    /**
     * 修改时间
     */
    @Column(name = "gmt_modified")
    private Date gmtModified;

    /**
     * 撰稿人或音频转述师ID
     */
    @Transient
    private Long userid;

    /**
     * 书籍查询关键字
     */
    @Transient
    private String word;

    /**
     * 主题包ID
     */
    @Transient
    private Long themeid;

    /**
     * 是否随机获取书籍数量
     */
    @Transient
    private boolean random;

    /**
     * 1 最新 2 最热
     */
    @Transient
    private Integer type1;

    /**
     * 书籍分类
     */
    @Transient
    private String classes;

    /**
     * 书籍标签
     */
    @Transient
    private String tabs;
}